#include "shape.h"
#include <vector>
#include "vector.h"
#include "Object.h"
using namespace::std;

	class rayTracer
	{
	public:

		#define MAXDEPTH  6
		#define MAXDST    1
		#define EPSILON	 0.005

		rayTracer(vector<Object*> pOL, vector<LightPoint> pLL) : pObjLst(pOL), pLightLst(pLL) {}


		void setObjectList(vector<Object*> pOL)	{ pObjLst = pOL;	}
		void setLightList(vector<LightPoint> pLL)	{ pLightLst = pLL;	}

		Color4 trace(ray3, int = 0);

	private:

		vector<Object*> pObjLst;
		vector<LightPoint> pLightLst;
	};